Phoenix的schema与HBase的namespace
官网介绍:http://phoenix.apache.org/namspace_mapping.html
默认情况下在Phoenix中create schema 默认不会映射到namespace;需要在服务端和客户端都开启phoenix.schema.isNamespaceMappingEnabled
服务端:hbase-site.xml
1 | <property> |
如果之前没有设置以上参数,重新设置需要重启集群
stop-hbase.sh
start-hbase.sh
客户端【phoenix的bin目录下】:之前做了软连接 所以也有这2个参数
之后在Phoenix中create schema 就会映射到namespace
【注意】:基于这2个参数可以延申一个工作中需要注意的点;要看清楚其他组件(hadoop)文档的配置参数,要注意是server 还是 client;假如不清楚,在服务端和客户端都配置。
dbeaver
1、官网下载 https://dbeaver.io/
2、安装配置jdk1.8运行环境
3、安装dbesver(windows 直接下exe文件运行安装即可)
4、hosts文件配置 hbase的集群(window: C:\Windows\System32\drivers\etc)
5、下载Phoenix-client jar(使用sz命令或者xftp等工具)
phoenix-4.14.0-cdh5.14.2-client.jar 下载到window本地
6、选择连接phoenix
7、如果遇到 抛错Unexpected version format: XXX错误 即是jdk版本错误
到phoenix安装目录找到并修改dbeaver.ini文件,在第一行加上 本机java的bin路径
1
2-vm
C:/Program Files/Java/jdk1.8.0_211/bin
盐表
盐表是一种特殊的预分区表:写之前加前缀,读之前去除前缀
官方文档:http://phoenix.apache.org/salted.html
1 | create table my_schema.my_table |
上诉SQL建表语句 salt_buckets = 20 代表本表会被切分为20块分散到20个region上;官网规定 salt_buckets :1~256 ;有一个不成文规定:regionserver 多少台 就设置多少,方便每个regionserver管理本表一个region;假如计划后期有加机器,可以预先设置好 salt_buckets,因为这个参数一旦设置好后不可更改
【注意】:hbase UI 界面中 Requests:读一次+1 写一次+1
- 好处: 其实本质就是在rowkey前加随机数;有助于数据均匀的落在各个region–>各个节点,从而提供写的性能
- 坏处
【角度1】:
【角度2】:1-1000 非盐表 数据在一个regionserver 查询性能高 1-1000 盐表 数据在多个regionserver 查询性能低
1-1KW 非盐表 数据在一个regionserver 查询性能低 1-1KW 盐表 数据在多个regionserver 查询性能高
【注意】:规划20个rs节点,salt_buckets=20;
数据量越来越多,新增了50台,salt_buckets=20–》70;phoenix是没有直接增加bucket的方法,只能先drop–>再create–>再导数据